<?php namespace app\admin\controller;
class Plugin
{
	//插件列表
	public function lists($value='')
	{
		$data=Db::table('plugin')->paginate(8);
		View::with('data',$data);
		return view();
	}

	//设计插件
	public function post()
	{
		if (IS_POST) {
			Validate::make( [
				[ 'title', 'required', '插件中文标题不能为空' ],
				[ 'author', 'required', '作者不能为空' ],
				[ 'name', 'regexp:/^[a-z]+$/', '标识不能为空' ],
				[ 'version', 'required', '版本号不能为空' ],
			] );
			$name = Request::post( 'name' );
			//检测插件是否已经安装
			if ( Db::table( 'plugin' )->where( 'name', $name )->get() ) {
				message( '插件已经存在,请更换标识', '', 'warning' );
			}
			//创建插件文件
			if(!mkdir( 'module/' . $_POST['name'].'/template', 0755, TRUE )){
				message('目录创建失败','','error');
			}
			$siteFile
				= <<<str
<?php namespace module\\{$name};

use module\WfSite;

class Site extends WfSite {
}
str;
			file_put_contents( 'module/' . $name . '/Site.php', $siteFile );
			//创建消息回复文件
			$processFile
				= <<<str
<?php namespace module\\{$name};
class Process {
	public function handler( \$kid ) {
	}
}
str;
			file_put_contents( 'module/' . $name . '/Process.php', $processFile );
			//处理微信文本消息,非关键词
			if ( $_POST['is_handler'] == 1 ) {
				$handler
					= <<<str
<?php namespace module\\{$name};
class Handler {
	public function run(\$content) {
	}
}
str;
				file_put_contents( 'module/' . $name . '/Handler.php', $handler );
			}
			//把模块入库
			$model = new \system\model\Plugin();
			$model->save( Request::post() );
			message( '插件创建成功' ,'lists','success');
		}

		return view();
	}



}